#define _CRT_SECURE_NO_WARNINGS 2

#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>

typedef int datatype;

typedef struct Node {
	datatype val;
	struct Node* next;
}Node;

typedef struct Queue {
	int size;
	Node* head;
	Node* tail;
}Queue;


void QueueInit(Queue* q);
void QueuePush(Queue* q, datatype val);
void QueuePop(Queue* q);
bool QueueEmpty(Queue* q);
datatype QueueFront(Queue* q);
datatype QueueBack(Queue* q);
int QueueSize(Queue* q);
void QueueDestroy(Queue* q);
void QueuePrint(Queue* q);